﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace HML.Demo
{
    internal static class DemoHelper
    {
        /// <summary>
        /// DropDownListPlus绑定枚举列表
        /// </summary>
        /// <typeparam name="T">枚举类型</typeparam>
        /// <param name="control">DropDownListPlus</param>
        /// <param name="selectedEnum">要选中枚举（null为没有）</param>
        public static void BindEnumList<T>(this DropDownListPlus control, T selectedEnum)
        {
            DropDownListPlusItemCollection list = new DropDownListPlusItemCollection();
            DropDownListPlusItem selectItem = null;

            string[] names = Enum.GetNames(typeof(T));
            for (int i = 0; i < names.Length; i++)
            {
                DropDownListPlusItem item = new DropDownListPlusItem() { Text = names[i], Tag = Enum.Parse(typeof(T), names[i]) };
                list.Add(item);
                if (selectedEnum != null && names[i] == selectedEnum.ToString())
                {
                    selectItem = item;
                }
            }

            control.BindItemsSource(list, selectItem);

        }

        /// <summary>
        /// 获取List的Demo数据集合
        /// </summary>
        /// <returns></returns>
        public static string[] GetLists()
        {
            string str = @"
唧唧复唧唧，木兰当户织。
不闻机杼声，唯闻女叹息。 
问女何所思，问女何所忆。
女亦无所思，女亦无所忆。
昨夜见军帖，可汗大点兵，
军书十二卷，卷卷有爷名。
阿爷无大儿，木兰无长兄，
愿为市鞍马，从此替爷征。 
东市买骏马，西市买鞍鞯，
南市买辔头，北市买长鞭。
旦辞爷娘去，暮宿黄河边，
不闻爷娘唤女声，但闻黄河流水鸣溅溅。
旦辞黄河去，暮至黑山头，
不闻爷娘唤女声，但闻燕山胡骑鸣啾啾。 
万里赴戎机，关山度若飞。
朔气传金柝，寒光照铁衣。
将军百战死，壮士十年归。 
归来见天子，天子坐明堂。
策勋十二转，赏赐百千强。
可汗问所欲，木兰不用尚书郎，
愿驰千里足，送儿还故乡。
爷娘闻女来，出郭相扶将；
阿姊闻妹来，当户理红妆；
小弟闻姊来，磨刀霍霍向猪羊。
开我东阁门，坐我西阁床，
脱我战时袍，著我旧时裳。
当窗理云鬓，对镜帖花黄。
出门看火伴，火伴皆惊忙，
同行十二年，不知木兰是女郎。";

            return str.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
        }

        /// <summary>
        /// 读取文本内容
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static string GetDescription(string path)
        {
            if (File.Exists(path))
            {
                return File.ReadAllText(path);
            }
            return "";
        }

    }
}
